package com.kxf.androidtestdemo.kotlin

/**
 *
 * @ProjectName:    AndroidTestDemo
 * @Package:        com.kxf.androidtestdemo.kotlin
 * @ClassName:      InterfaceMore
 * @Description:     多个接口实现
 * @Author:         kuangxuefeng
 * @qq:             1024883177
 * @CreateDate:     2021/3/10 11:24
 */
interface A {
    fun foo() { println("A foo") }   // 已实现
    fun bar()                  // 未实现，没有方法体，是抽象的
}

interface B {
    fun foo() { println("B foo") }   // 已实现
    fun bar() { println("B bar") } // 已实现
}

class C : A {
    companion object{
        var cc:Int = 4
        const val k=5

        fun fc(){
            println("C fc")
        }
    }
    override fun bar() { println("C bar") }   // 重写
}

class D : A, B {
    override fun foo() {
        super<A>.foo()
//        super<B>.foo()
    }

    override fun bar() {
        super<B>.bar()
    }
}


val C.Companion.k1
    get() = 1
val C.Companion.k
    get() = 2
val C.Companion.cc
    get() = 3
val C.Companion.cc1
    get() = 7

fun main(args: Array<String>) {
    val d =  D()
    d.foo();
    d.bar();

    fun D.add(){
        println("D add")
    }
    d.add()

    val c = C()
    c.foo();
    c.bar();
    C.fc();

    println("C.cc=${C.cc}")
    println("C.cc1=${C.cc1}")
    println("C.k=${C.k}")
    println("C.k1=${C.k1}")
}